package com.example.clock_demo.dto;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

import java.time.LocalDate;
import java.time.LocalTime;
import java.math.BigDecimal;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class AttendanceDailyRecordDTO {
    private LocalDate date;          // 日期
    private String dayOfWeek;        // 星期几
    private String teamName;         // 班组名字
    private String employeeName;     // 姓名
    private String employeeNumber;   // 工号
    private String shiftName;        // 排班班次名称
    private String shiftCode;        // 排班班次代码
    private LocalTime scheduledStartTime; // 排班开始时间
    private LocalTime scheduledEndTime;   // 排班结束时间
    private BigDecimal scheduledDurationHours; // 排班时长（小时）

    private LocalTime actualPunchInTime; // 实际最早打卡时间
    private LocalTime actualPunchOutTime; // 实际最晚打卡时间
    private BigDecimal actualWorkHours;   // 实际工作时长（小时）

    // 新增：打卡设备字段
    private String punchInDevice;    // 上班打卡设备
    private String punchOutDevice;   // 下班打卡设备

    private String attendanceStatus; // 考勤状态 (例如: 正常, 迟到, 早退, 缺勤, 休息日)
    private Boolean isLate;          // 是否迟到
    private Boolean isEarlyLeave;    // 是否早退
    private Boolean isAbsent;        // 是否缺勤
    private BigDecimal lateDurationHours; // 迟到时长（小时）
    private BigDecimal earlyLeaveDurationHours; // 早退时长（小时）
}
